import { combineReducers } from 'redux';

// reducerCreator 对应 redux-amrc 中的 “rc”，它是一个reducer创建函数，即生成reducer的函数。
// 大多数情况下，只需要直接运行reducerCreator，并将其运行结果合并到rootReducer中即可，
// 但该函数也可以接受reducers作为可选参数，以便更新state. async.[key]节点上的数据。
import { reducerCreator } from 'redux-amrc';
import counter from './counter';

// 配置reducer。从redux-connect中导入reducerCreator，这是一个生成reducer的函数，在大多数情况下，只需要将其运行结果合并到rootReducer中即可

const rootReducer = combineReducers({
  // reducerCreator 接受 reducers 作为参数, 以便更新state. async.[key]节点上的数据。
  // reducers是由若干个key和reducer所组成的键值对，“键”对应ASYNC中的key，“值”是更新state.async.[key]的reducer。
  // 其实，这里的 reducers 与 combineReducers(reducers) 中的reducers格式是一样的。
  async: reducerCreator({ counter })
  // {counter}是键值对{counter:counter}的简写。
  // 前面的counter键对应ASYNC中的key:'counter'。
  // 而后面的 counter 则是处理 INCREMENT_COUNTER 和 DECREMENT_COUNTER 的 reducer。
  // 如此一来，当发起INCREMENT_COUNTER和DECREMENT_COUNTER，就能够操作redux-amrc（即state. async.counter）中的数据了。

});

export default rootReducer;
